package de.tfix.test;

import java.util.Calendar;

import de.tfix.test.R;
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class LokStatistik extends Activity {

	private TextView tvDisplayDate;
	private DatePicker dpResult;
	private Button btnChangeDate;
	private Button btnAbsenden;
	private EditText edLok;

	private int year;
	private int month;
	private int day;

	static final int DATE_DIALOG_ID = 999;
	

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		setCurrentDateOnView();
		addListenerOnButton();
		sendenButton();

	}

	// zeigt das aktuelle Datum
	public void setCurrentDateOnView() {

		tvDisplayDate = (TextView) findViewById(R.id.tvDate);
		dpResult = (DatePicker) findViewById(R.id.dpResult);

		final Calendar c = Calendar.getInstance();
		year = c.get(Calendar.YEAR);
		month = c.get(Calendar.MONTH);
		day = c.get(Calendar.DAY_OF_MONTH);

		// setzt das aktuelle Datum in das TextEdit
		tvDisplayDate.setText(new StringBuilder()
				// Month ist 0 basiert, immer plus 1
				.append(day).append(".").append(month +1).append(".")
				.append(year).append(" "));

		// aktuelles Datum in datepicker setzen
		dpResult.init(year, month, day, null);

	}
	
	// Was soll der "Datum änderen" Button machen:
	public void addListenerOnButton() { 

		btnChangeDate = (Button) findViewById(R.id.btnDatumAendern);

		btnChangeDate.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {

				showDialog(DATE_DIALOG_ID);

			}

		});

	}

	@Override
	protected Dialog onCreateDialog(int id) {
		switch (id) {
		case DATE_DIALOG_ID:
			// Datum aus datepicker einsetzen
			return new DatePickerDialog(this, datePickerListener, year, month,
					day);
		}
		return null;
	}

	private DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() {

		// wenn die DialogBox geschlossen wird, wird onDateSet aufgerufen...
		public void onDateSet(DatePicker view, int selectedYear,
				int selectedMonth, int selectedDay) {
			year = selectedYear;
			month = selectedMonth;
			day = selectedDay;

			// .. und danach die Auswahl im Textview eingefügt
			tvDisplayDate.setText(new StringBuilder().append(day)
					.append(".").append(month + 1).append(".").append(year)
					.append(" "));

			// den DatePicker initialisieren (voreinstellen)
			dpResult.init(year, month, day, null);

		}
	};
	
	// Was soll der "Datum änderen" Button machen:
		public void sendenButton() { 

			btnAbsenden = (Button) findViewById(R.id.btnSenden);
			edLok = (EditText) findViewById(R.id.edLok);
			
			btnAbsenden.setOnClickListener(new OnClickListener() {

				@Override
				public void onClick(View v) {

					/** der Button hat zunächst die Aufgabe einen Toast auszugeben, 
					 * 	damit man die eingegebenen Texte überprüfen kann. Dieser Eintrag kommt
					 *  dann in eine Datenbank oder direkt in den Google-Kalender
					**/
					showToast("Daten :\nDatum : "+tvDisplayDate.getText().toString()+"\nLoknummer :"+edLok.getText().toString());
				}

			});

		}
		
		public void showToast(CharSequence msg) {
        Toast.makeText(this, msg, Toast.LENGTH_LONG).show();     // einfach einen Toast erstellen
	}

}